چطوری میشه

افزونه کد کوتاه محصولات WooCommerce اخیراً مشاهده شده است

افزونه کد کوتاه محصولات WooCommerce اخیراً مشاهده شده است

چند روز پیش، تیم WooThemes اعلام نسخه 2 هدف بسیار محبوب WooCommerce که به هر وردپرس هر نوع محصولی را به راحتی به فروش می رساند. حتی اگر بیشتر به کار با عادت داشته باشم افزونه Easy Digital Downloads توسط پیپین ویلیامسون بسیار با استعداد، من می خواستم کمی عمیق تر به WooCommerce بروم و به شما نشان دهم که چگونه می توانید از ویژگی های موجود برای ایجاد عملکردهای جدید استفاده کنید. و امروز می خواهم به شما توضیح دهم که چگونه یک کد کوتاه ایجاد کنید که محصولات اخیراً مشاهده شده را نمایش دهد. محصولاتی که اخیراً مشاهده شده اند یک ویژگی فوق العاده قدرتمند است فقط به این دلیل که برای من نوعی هوش مصنوعی بسیار ابتدایی است. این به کاربران این امکان را می دهد که به راحتی در عرض چند ثانیه به محصولاتی که قبلاً مشاهده کرده اند بازگردند. و استفاده از یک کد کوتاه برای نمایش محصولات اخیراً مشاهده شده بسیار عالی است زیرا می توانید آن را در همه جای وب سایت خود قرار دهید.

معمولاً وقتی یک آموزش در مورد WPexplorer ایجاد می کنم، روش را گام به گام توضیح می دهم، اما همانطور که آموزش امروز کمی طولانی تر، ترجیح می دهم کل فرآیند را توضیح دهم و سپس کد کامل را با نظرات مستقیماً در کد به شما ارائه دهم.

انجام آن در یک کد کوتاه

بنابراین، ما قصد داریم افزونه‌ای ایجاد کنیم که کد کوتاه [woocommerce_recently_viewed_products per_page=”5″] را ثبت می‌کند. چرا پلاگین ایجاد کنیم؟ زیرا این ساده ترین راه برای ذخیره یک ویژگی است که می توانید با هر موضوعی استفاده کنید. اگر تصمیم دارید یک کد کوتاه در یک موضوع ثبت کنید، کد کوتاه تنها در صورتی در دسترس خواهد بود که موضوع فعال شده باشد. با یک افزونه، صرف نظر از موضوعی که استفاده می کنید، این ویژگی همچنان در دسترس خواهد بود. نکته بسیار مهم دیگر این است که هرگز نباید فایل های WooCommerce را تغییر دهید.

آیا کوکی ها را دوست دارید؟ من واقعاً این کار را انجام می دهم!

به‌طور پیش‌فرض WooCommerce یک کوکی ایجاد می‌کند که داده‌های مهمی را در مورد کارهایی که یک بازدیدکننده در فروشگاه انجام می‌دهد و می‌بیند ذخیره می‌کند. و این دقیقاً همان نوع داده ای است که ما برای ایجاد افزونه خود به آن نیاز داریم. مهم‌ترین داده‌های مورد نیاز ما در کوکی‌هایی به نام $_COOKIE[‘woocommerce_recently_viewed’] ذخیره می‌شوند. اساساً این کوکی شناسه آخرین محصولات مشاهده شده را ذخیره می کند. از آنجایی که WooCommerce از قبل این شناسه ها را ذخیره می کند، کار ما در نهایت این است که با استفاده از ویژگی پرس و جو “post__in” یک جستجوی خوب ایجاد کنیم و اطمینان حاصل کنیم که محصولاتی که باید نمایش دهیم هنوز در انبار هستند. برای انجام این کار، باید از روش $woocommerce->query->stock_status_meta_query() در ویژگی پرس و جو «meta_query» استفاده کنیم.

کد کامل افزونه

از آنجایی که کد بسیار ساده است، نظرات را مستقیماً به کد اضافه کردم، و آموزش گام به گام انجام ندادم، اما اگر چیزی واضح نیست، لطفاً نظر خود را بنویسید و من خوشحال خواهم شد هر قسمت از کد را برای شما توضیح دهید!

 '5'
	)، $atts))؛

	// WooCommerce Global را دریافت کنید
	جهانی $woocommerce;

	// داده های کوکی های محصول اخیراً مشاهده شده را دریافت کنید
	$viewed_products = ! خالی ($_COOKIE['woocommerce_recently_viewed'] ) ? (آرایه) explode( '|', $_COOKIE['woocommerce_recently_viewed'] ) : array();
	$viewed_products = array_filter( array_map( 'absint', $viewed_products ) );

	// اگر داده ای وجود ندارد، از آن خارج شوید
	if ( خالی ($viewed_products ) )
		return __( 'شما هنوز هیچ محصولی را مشاهده نکرده اید!', 'rc_wc_rvp' );

	// ایجاد شی
	ob_start();

	// دریافت محصولات در هر صفحه
	if( !isset( $per_page ) ? $number = 5 : $number = $per_page )

	// آرایه آرگومان های پرس و جو را ایجاد کنید
    $query_args = آرایه(
    				'posts_per_page' => $number، 
    				'no_found_rows' => 1، 
    				'post_status' => 'انتشار'، 
    				'post_type' => 'محصول'، 
    				'post__in' => $viewed_products، 
    				'orderby' => 'rand'
    				)

	// meta_query را به query args اضافه کنید
	$query_args['meta_query'] = array();

    // وضعیت موجودی محصولات را بررسی کنید
    $query_args['meta_query'][] = $woocommerce->query->stock_status_meta_query();

	// یک پرس و جو جدید ایجاد کنید
	$r = WP_Query جدید ($query_args);

	// اگر پرس و جو نتایج را برگرداند
	if ($r->have_posts() ) {

		$content = '
    '; // حلقه را شروع کنید while ($r->have_posts()) { $r->the_post(); محصول جهانی $; $content .= '
  • ' . ( has_post_thumbnail() ? get_the_post_thumbnail($r->post->ID, 'shop_thumbnail' ) : woocommerce_placeholder_img( 'shop_thumbnail' ) ) . ' ' . get_the_title(). ' ' . $product->get_price_html() . '
  • '; } $content .= '
'; } // شی تمیز را دریافت کنید $content .= ob_get_clean(); // کل محتوا را برگردانید بازگشت محتوای $; } // کد کوتاه را ثبت کنید add_shortcode("woocommerce_recently_viewed_products", "rc_woocommerce_recently_viewed_products");
حتما بخوانید : انتظارات از وردپرس 3.6

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا